home *** CD-ROM | disk | FTP | other *** search
/ PCMania 48 / PCMania CD48_1.iso / pcmania / dscene48 / ejemplo2.pas < prev    next >
Pascal/Delphi Source File  |  1996-07-07  |  1KB  |  51 lines

  1.         PROGRAM mueve_un_cuadrado_por_pantalla_con_pantalla_virtual;
  2.  
  3.         Uses Dos, Crt;
  4.  
  5.         Procedure ModeSet(Mode : Byte); ASSEMBLER;
  6.         ASM
  7.            mov    ah,0
  8.            mov    al,[Mode]
  9.            int    10h
  10.         END;
  11.  
  12.         Procedure Borra_Pantalla(Segmento : Word);
  13.         Begin
  14.              FillChar(Ptr(Segmento,0)^, 64000, 0);
  15.         End;
  16.  
  17.         Procedure Pon_Cuadrado(X,Y,Segmento  : Word);
  18.         VAR
  19.            iX, iY       : Word;
  20.  
  21.         Begin
  22.              For iY := Y to Y+10 do
  23.              Begin
  24.                   For iX := X to X+10 do Mem[Segmento:(320*iY)+iX] := 9;
  25.              End;
  26.         End;
  27.  
  28.         VAR
  29.            X,Y          : Word;
  30.            Virtual      : Pointer;
  31.  
  32.         Begin
  33.              ModeSet($13);
  34.  
  35.              GetMem(Virtual, 320*200);
  36.  
  37.              Y:=100; X:=0;
  38.  
  39.              While (X<320) do
  40.              Begin
  41.                   Borra_Pantalla(Seg(Virtual^));
  42.                   Pon_Cuadrado(X,Y,Seg(Virtual^));
  43.                   Move(Virtual^,Mem[$a000:0],64000);
  44.                   X:=X+1;
  45.              End;
  46.  
  47.              ModeSet(3);
  48.  
  49.              FreeMem(Virtual, 320*200);
  50.         End.
  51.